package com.gaohe.scp.mapper;

import java.util.List;
import com.gaohe.scp.domain.CsCarExplain;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

/**
 * 车辆成交说明Mapper接口
 *
 * @author liuxiangyu
 * @date 2025-03-25
 */
@Mapper
public interface CsCarExplainMapper
{
    public CsCarExplain selectCsCarExplainByCarId(Long carId);

    /**
     * 查询车辆成交说明
     *
     * @param explainId 车辆成交说明主键
     * @return 车辆成交说明
     */
    public CsCarExplain selectCsCarExplainByExplainId(Long explainId);

    /**
     * 查询车辆成交说明列表
     *
     * @param csCarExplain 车辆成交说明
     * @return 车辆成交说明集合
     */
    public List<CsCarExplain> selectCsCarExplainList(CsCarExplain csCarExplain);

    /**
     * 新增车辆成交说明
     *
     * @param csCarExplain 车辆成交说明
     * @return 结果
     */
    public int insertCsCarExplain(CsCarExplain csCarExplain);

    /**
     * 修改车辆成交说明
     *
     * @param csCarExplain 车辆成交说明
     * @return 结果
     */
    public int updateCsCarExplain(CsCarExplain csCarExplain);

    /**
     * 删除车辆成交说明
     *
     * @param explainId 车辆成交说明主键
     * @return 结果
     */
    public int deleteCsCarExplainByExplainId(Long explainId);

    /**
     *
     * 批量删除车辆成交说明
     *
     * @param explainIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCsCarExplainByExplainIds(Long[] explainIds);

    /**
     *  作者:张文豪
     * @param carId
     * @return
     */
    // 使用结果映射明确指定字段与属性的对应关系
//    @Select("SELECT explain_id, explain_content " +
//            "FROM cs_car_explain " +
//            "WHERE car_id = #{carId}")
//    @Results({
//            @Result(property = "explainId", column = "explain_id"),
//            @Result(property = "explainContent", column = "explain_content"),
//            @Result(property = "carId", column = "car_id")
//    })
//    CsCarExplain selectCsCarExplainByCarId(Long carId);

    /**
     * 作者:张文豪
     * @param csCarExplain
     * @return
     */
    int updateAllCarInfo(CsCarExplain csCarExplain);
}
